home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue39 / slimmer / D3.LOG < prev    next >
Encoding:
Text File  |  1998-09-09  |  2.4 KB  |  65 lines

  1.  
  2. In D3 the Exe startup code only calls InitEXE. This is responsible for
  3. calling the init/final code of all other units in the module. This
  4. is done by calling entries in a table created by the linker.
  5.  
  6. inittest.initialization: begin
  7. :00424C84 55             push   ebp
  8. :00424C85 8BEC           mov    ebp,esp
  9. :00424C87 83C4F4         add    esp,FFFFFFF4
  10. :00424C8A B8E44B4200     mov    eax,00424BE4
  11. :00424C8F E83C03FEFF     call   @InitExe
  12. inittest.10:  Application.Initialize;
  13. :00424C94 A198584200     mov    eax,[00425898]
  14. :00424C99 8B00           mov    eax,[eax]
  15. :00424C9B E860F0FFFF     call   TApplication.Initializ
  16.  
  17. Normally, empty try..finally, Inc(AutoGlobal):
  18.  
  19. Finalization:  AutoGlobalP := pointer(longint(@UnitGlobal)
  20. :00424B58 55             push   ebp
  21. :00424B59 8BEC           mov    ebp,esp
  22. :00424B5B 33C0           xor    eax,eax
  23. :00424B5D 55             push   ebp
  24. :00424B5E 68934B4200     push   00424B93
  25. :00424B63 64FF30         push   fs:dword ptr [eax]
  26. :00424B66 648920         mov    fs:[eax],esp
  27. :00424B69 FF0530674200   inc    dword ptr [00426730]
  28. :00424B6F 7514           jne    INITTEST.00424B85 (00424B85
  29. :00424B71 B82C674200     mov    eax,0042672C
  30. :00424B76 83C004         add    eax,00000004
  31. :00424B79 A328674200     mov    [00426728],eax
  32. testinit.28:  UnitGlobal := 0;
  33. :00424B7E 33C0           xor    eax,eax
  34. :00424B80 A32C674200     mov    [0042672C],eax
  35. :00424B85 33C0           xor    eax,eax
  36. :00424B87 5A             pop    edx
  37. :00424B88 59             pop    ecx
  38. :00424B89 59             pop    ecx
  39. :00424B8A 648910         mov    fs:[eax],edx
  40. :00424B8D 689A4B4200     push   00424B9A
  41. :00424B92 C3             ret
  42. :00424B93 E998E4FDFF     jmp    @HandleFinally
  43. :00424B98 EBF8           jmp    INITTEST.00424B92 (00424B92
  44. testinit.31: end.
  45. :00424B9A 5D             pop    ebp
  46. :00424B9B C3             ret
  47.  
  48.  
  49. Normally, Dec(AutoGlobal);
  50.  
  51. initialization: initialization
  52. :00424B9C 832D3067420001 sub    dword ptr [00426730],000000
  53. :00424BA3 7314           jnb    testinit.22 (00424BB9)
  54. testinit.19:  AutoGlobalP := pointer(longint(@UnitGlobal) +
  55. :00424BA5 B82C674200     mov    eax,0042672C
  56. :00424BAA 83C004         add    eax,00000004
  57. :00424BAD A328674200     mov    [00426728],eax
  58. testinit.20:  UnitGlobal := 0;
  59. :00424BB2 33C0           xor    eax,eax
  60. :00424BB4 A32C674200     mov    [0042672C],eax
  61. testinit.22: finalization
  62. :00424BB9 C3             ret
  63.  
  64.  
  65.